home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / mischards.lha / SourceCode / OffSpring.s < prev    next >
Text File  |  1980-02-20  |  35KB  |  2,036 lines

  1.     opt    c-
  2.     
  3.     Section    "OffSpring-ChipRamCode",Code_c
  4.     
  5. FallSpeed    = 1
  6. MoveSpeed    = 1    
  7.     
  8. Start    Movem.l    d0-d7/a0-a6,-(a7)
  9.     Move.l    a7,InitialSP
  10.     Jsr    KillOS
  11.     Move.l    #0,TimeFrame
  12.     Jsr    SetBitPlanes
  13.     Jsr    SetMouse
  14. ;    Jsr    DoCopperShade
  15. Reset    Jsr    SetVars
  16.     Move.l    #0,TimeFrame
  17.     Jsr    BlitMap
  18.     Move.w    #$ffff,$Dff02e
  19.     Jsr    MainLoop
  20.     
  21.     Btst    #2,$Dff016
  22.     Beq    Reset
  23.     
  24.     Jsr    HelpOS
  25.     Move.l    InitialSP,a7
  26.     Movem.l    (a7)+,d0-d7/a0-a6
  27.     Move.l    #0,d0
  28.     Rts
  29.  
  30. KillOS    
  31.     Move.w    #$ffff,d0
  32. SysPause    Move.w    d0,$Dff182
  33.     Dbf    d0,SysPause
  34.     Move.l    $4,a6
  35.     Moveq    #0,d0
  36.     Lea    GFXLib(PC),a1
  37.     Jsr    -552(a6)    _LVOOpenLibrary
  38.     Move.l    d0,GFXBase
  39.     Jsr    -132(a6)    _LVOForbid
  40.     Jsr    -150(a6)    _LVOSuperState
  41.     Move.l    d0,SYSStack
  42.     Move.w    $Dff01C,IntEnSave
  43.     Move.w    $Dff01E,IntRqSave
  44.     Move.w    $Dff002,DMASave
  45.     Move.w    $Dff010,ADKSave
  46.     Bset    #1,$Bfe001
  47.     Move.w    #%0111111111111111,$Dff096    
  48.     Move.l    #Newcopper,$Dff080
  49.     Clr.w    $Dff088
  50.  
  51.     Move.w    #%1000011111000000,$Dff096
  52.  
  53.     Rts
  54.  
  55. DoCopPokeABCD    Move.w    #3,d1
  56.     Bra    PokeLoop
  57.     
  58. DoCopPokeAD    Move.w    #1,d1
  59.  
  60. PokeLoop    Move.l    #ShitBuffer,d0
  61.     Move.w    d0,4(a0)
  62.     Swap    d0
  63.     Move.w    d0,(a0)
  64.     Swap    d0
  65.     Add.l    #8,a0
  66.     Dbf    d1,PokeLoop
  67.     Rts
  68.  
  69. SetVars    Move.w    #0,DiagX
  70.     Move.w    #0,BlokeXPos
  71.     Move.w    #192,BlokeYPos
  72.     Move.w    #0,NastyXPos
  73.     Move.w    #0,NastyYPos
  74.     
  75.     Lea    CBlokeA,a0
  76.     Bsr    DoCopPokeABCD
  77.  
  78.     Lea    CNastyA,a0
  79.     Bsr    DoCopPokeABCD
  80.     
  81.     Lea    CGoodTable,a1
  82.     Move.w    #15,d7
  83. ResetCGood    Move.l    (a1)+,a0    
  84.     Bsr    DoCopPokeABCD
  85.     Dbf    d7,ResetCGood
  86.  
  87.     Lea    CGoodRecTable,a1
  88.     Move.w    #15,d7
  89. ResetCGoodRec    Move.l    (a1)+,a0
  90.     Bsr    DoCopPokeAD
  91.     Dbf    d7,ResetCGoodRec
  92.             
  93.     Lea    GoodiesList,a0
  94.     Move.w    (a0)+,d7
  95.     Sub.w    #1,d7
  96.  
  97. GoodySetter    Bset    #0,(a0)
  98.     Add.l    #8,a0
  99.     Dbf    d7,GoodySetter
  100.     Rts
  101.  
  102. MainLoop    
  103.     Move.w    #%0000010000000000,$Dff096
  104.  
  105.     Jsr    DoCBloke
  106.     Jsr    DoCNasty
  107.  
  108. VblWait    Cmpi.b    #$90,$Dff006
  109.     Bne    VblWait
  110.     
  111.     Add.b    #1,TimeFrame
  112.     Cmpi.b    #50,TimeFrame
  113.     Bne    NotSecYet
  114.     Move.b    #0,TimeFrame
  115.     Add.b    #1,TimeSecs
  116.     Cmpi.b    #60,TimeSecs
  117.     Bne    NotSecYet
  118.     Move.b    #0,TimeSecs
  119.     Add.b    #1,TimeMins
  120.     Cmpi.b    #60,TimeMins
  121.     Bne    NotSecYet
  122.     Move.b    #0,TimeMins
  123.     Add.b    #1,TimeHour
  124.  
  125. NotSecYet    Move.w    #$555,$Dff180
  126.  
  127.     Bsr    CRecallBlokeMap
  128.     Bsr    CRecallNastyMap
  129.     Bsr    SetGoodies
  130.  
  131.     Move.w    #%1000011111000000,$Dff096
  132.     
  133.     Bsr    TrackStick
  134.     Bsr    KeyBoard
  135.     Bsr    BlokeCollDet
  136.     Bsr    BlokeCon
  137.     Bsr    BlokeWalk
  138.  
  139.     Bsr    BlokeCollDet
  140.     Bsr    BlokeCon
  141.     Bsr    BlokeWalk
  142.  
  143.     Bsr    NastyCollDet
  144.     Bsr    NastyCon
  145.     Bsr    NastyWalk
  146.         
  147.     Move.w    #$000,$Dff180
  148.     
  149.     Btst    #2,$Dff016
  150.     Beq    EndMainLoop
  151.  
  152.     Btst    #6,$Bfe001
  153.     Bne    MainLoop
  154.     
  155. EndMainLoop    Rts
  156.     
  157. SetBitPlanes    Move.l    #Piccy,d0
  158.     Move.w    d0,Pl0l
  159.     Swap    d0
  160.     Move.w    d0,Pl0h
  161.     Swap    d0
  162.     add.l    #40,d0
  163.     Move.w    d0,Pl1l
  164.     Swap    d0
  165.     Move.w    d0,Pl1h
  166.     Swap    d0
  167.     add.l    #40,d0
  168.     Move.w    d0,Pl2l
  169.     Swap    d0
  170.     Move.w    d0,Pl2h
  171.     Swap    d0
  172.     add.l    #40,d0
  173.     Move.w    d0,Pl3l
  174.     Swap    d0
  175.     Move.w    d0,Pl3h
  176.     Swap    d0
  177.     add.l    #40,d0
  178.     Move.w    d0,Pl4l
  179.     Swap    d0
  180.     Move.w    d0,Pl4h
  181.     Rts
  182.  
  183. BlitMap    Lea    HardWare,a6
  184.     Move.l    #DeadCopper,$Dff080
  185.     Lea    MapData,a5
  186.     Lea    Piccy,a4
  187.     Move.w    #28,d7
  188. DoYMap    Move.l    a4,a2
  189.     Move.w    #39,d6
  190. DoXMap    Lea    BloxData,a3
  191.     Move.w    (a5)+,d5
  192.     And.l    #$3fff,d5
  193.     Moveq    #0,d4
  194.     Move.w    d5,d4
  195.     Move.l    #40,d3
  196.     Divs    d3,d4
  197.     Moveq    #0,d0
  198.     Moveq    #0,d1
  199.     Move.w    d4,d3
  200.     Swap    d4
  201.     Move.l    #1600,d2    
  202.     Muls    d3,d2
  203.     Add.w    d4,d2
  204.     And.l    #$ffff,d2
  205.     Add.l    d2,a3
  206.     Move.l    a2,a1
  207.  
  208.     Bsr    DoMapBlit
  209.         
  210. NoBlox    Add.l    #1,a2
  211.     Dbf    d6,DoXMap    
  212.     
  213.     Add.l    #1600,a4
  214.     Dbf    d7,DoYMap
  215.     
  216.     Bsr    BlitterWait
  217.     
  218.     Move.l    #$ffffffff,Bltafwm(a6)    
  219.     Move.l    #PiccyBack,Bltdpth(a6)    
  220.     Move.w    #0,Bltdmod(a6)    
  221.     Move.l    #Piccy,Bltapth(a6)    
  222.     Move.w    #0,Bltamod(a6)    
  223.     Move.w    #$09f0,Bltcon0(a6)    
  224.     Move.w    #$0000,Bltcon1(a6)    
  225.  
  226.     Move.w    #4,d7
  227. Mapcopy    Bsr    Blitterwait
  228.     Move.w    #231*64+20,BltSize(a6)
  229.     Dbf    d7,MapCopy
  230.  
  231.     Bsr    Blitterwait
  232.     
  233.     Move.l    #NewCopper,$Dff080
  234.     
  235.     Rts
  236.     
  237. DoMapBlit    Lea    HardWare,a6
  238.     
  239.     Bsr    BlitterWait
  240.     
  241.     Move.l    a1,Bltdpth(a6)    
  242.     Move.l    a1,Bltcpth(a6)    
  243.     Move.w    #36,Bltdmod(a6)    
  244.     Move.w    #36,Bltcmod(a6)    
  245.     Move.l    #000,Bltapth(a6)    
  246.     Move.l    a3,Bltbpth(a6)    
  247.     Move.w    #36,Bltamod(a6)    
  248.     Move.w    #36,Bltbmod(a6)    
  249.     Move.w    #$0000,Bltcon1(a6)    
  250.     Move.l    a1,d0
  251.     Move.l    a3,d1
  252.     Btst    #0,d0
  253.     Bne    Shift1
  254.     Move.l    #$ff000000,Bltafwm(a6)
  255.     Btst    #0,d1
  256.     Beq    Shift2
  257. Shift3    Move.w    #$8002,Bltcon1(a6)
  258.     Add.l    #1600,a1
  259.     Add.l    #1600,a3
  260.     Move.l    a1,Bltdpth(a6)    
  261.     Move.l    a1,Bltcpth(a6)    
  262.     Move.l    a3,Bltbpth(a6)        
  263.     
  264.     Move.w    #$ffff,Bltadat(a6)
  265.     Move.w    #$07ca,Bltcon0(a6)
  266.     Move.w    #((8*5)+1)*64+2,Bltsize(a6)    
  267.     Rts
  268. Shift1    Move.l    #$00ff0000,Bltafwm(a6)
  269.     Btst    #0,d1
  270.     Bne    Shift2
  271.     Move.w    #$8000,Bltcon1(a6)
  272. Shift2    ;Move.w    #$ffff,Bltadat(a6)
  273.     Move.w    #$07ca,Bltcon0(a6)
  274.     Move.w    #(8*5)*64+2,Bltsize(a6)    
  275. Noblit    Rts
  276.  
  277. DoCBloke    Lea    HardWare,a6
  278.     Bsr    ProcBlokePos
  279.     Bsr    DoBlokeFrame
  280.     Move.l    #BlokeData,a0
  281.     Move.l    #BlokeMask,a1
  282.  
  283.     Add.l    d0,a0
  284.     Add.l    d0,a1    
  285.     
  286.     Bsr    DoPosCalc
  287.     Move.l    a0,d1
  288.     Move.l    a1,d2
  289.     Move.l    #Piccy,d3
  290.     Add.l    d0,d3
  291.     
  292.     Lea    CBlokeA,a0
  293.     Move.w    d2,4(a0)
  294.     Swap    d2
  295.     Move.w    d2,(a0)
  296.  
  297.     Move.w    d1,12(a0)
  298.     Swap    d1
  299.     Move.w    d1,8(a0)
  300.     
  301.     Move.w    d3,20(a0)
  302.     Move.w    d3,28(a0)
  303.     Swap    d3
  304.     Move.w    d3,16(a0)
  305.     Move.w    d3,24(a0)
  306.     
  307.     Lea    CBlokeCon,a0
  308.     Move.w    d4,4(a0)
  309.     Or.w    #$fca,d4
  310.     Move.w    d4,(a0)
  311.     
  312.     Rts
  313.  
  314. DoCNasty    Lea    HardWare,a6
  315.     Bsr    ProcNastyPos
  316.     Bsr    DoNastyFrame
  317.     Move.l    #NastyData,a0
  318.     Move.l    #NastyMask,a1
  319.  
  320.     Add.l    d0,a0
  321.     Add.l    d0,a1    
  322.     
  323.     Bsr    DoPosCalc
  324.     Move.l    a0,d1
  325.     Move.l    a1,d2
  326.     Move.l    #Piccy,d3
  327.     Add.l    d0,d3
  328.     
  329.     Lea    CNastyA,a0
  330.     Move.w    d2,4(a0)
  331.     Swap    d2
  332.     Move.w    d2,(a0)
  333.  
  334.     Move.w    d1,12(a0)
  335.     Swap    d1
  336.     Move.w    d1,8(a0)
  337.     
  338.     Move.w    d3,20(a0)
  339.     Move.w    d3,28(a0)
  340.     Swap    d3
  341.     Move.w    d3,16(a0)
  342.     Move.w    d3,24(a0)
  343.     
  344.     Lea    CNastyCon,a0
  345.     Move.w    d4,4(a0)
  346.     Or.w    #$fca,d4
  347.     Move.w    d4,(a0)
  348.     
  349.     Rts
  350.  
  351. BlokeWalk    Btst    #1,JumpFlag
  352.     Bne    NoWalkFrames
  353.     
  354.     Btst    #0,CollFlag1
  355.     Bne    NoWalkFrames
  356.     Btst    #1,CollFlag1
  357.     Bne    NoWalkFrames
  358.  
  359.     Move.b    WalkCounter,d0
  360.     Btst    #0,JumpFlag
  361.     Bne    DoJumpFrames
  362.     Btst    #5,MoveFlag
  363.     Beq    NotNewFrame
  364.     Btst    #0,JumpFlag
  365.     Beq    NoJumpFrame
  366.     
  367. DoJumpFrames    Move.w    JumpDown,d3
  368.     Move.b    JumpFlag1,d4
  369.     Cmp.b    d3,d4
  370.     Ble    JumpUpFrame
  371.     Move.w    #5,d1
  372.     Bra    NotEndFrame
  373. JumpUpFrame    Move.w    #4,d1
  374.     Bra    NotEndFrame
  375.         
  376. NoJumpFrame    Move.b    WalkSpeed,d1
  377.     Add.b    #1,d0
  378.     Cmp.b    d0,d1
  379.     Bne    NotNewFrame
  380.     
  381.     Move.b    #0,d0
  382.     Move.b    WalkFrame,d1
  383.     Add.b    #1,d1
  384.     Cmpi.b    #4,d1
  385.     Beq    EndFrame
  386.     Cmpi.b    #5,d1
  387.     Beq    EndFrame
  388.     Cmpi.b    #6,d1
  389.     Beq    EndFrame
  390.     Bra    NotEndFrame
  391.     
  392. EndFrame    Move.b    #0,d1
  393.     
  394. NotEndFrame    Move.b    d1,WalkFrame
  395. NotNewFrame    Move.b    d0,WalkCounter
  396. NoWalkFrames    Rts
  397.  
  398. NastyWalk    Btst    #1,JumpFlagN
  399.     Bne    NoWalkFramesN
  400.  
  401.     Btst    #0,CollFlag1N
  402.     Bne    NoWalkFramesN
  403.     Btst    #1,CollFlag1N
  404.     Bne    NoWalkFramesN
  405.  
  406.     Move.b    WalkCounterN,d0
  407.     Btst    #0,JumpFlagN
  408.     Bne    DoJumpFramesN
  409.     Btst    #5,MoveFlagN
  410.     Beq    NotNewFrameN
  411.     Btst    #0,JumpFlagN
  412.     Beq    NoJumpFrameN
  413.     
  414. DoJumpFramesN    Move.w    JumpDownN,d3
  415.     Move.b    JumpFlag1N,d4
  416.     Cmp.b    d3,d4
  417.     Ble    JumpUpFrameN
  418.     Move.w    #5,d1
  419.     Bra    NotEndFrameN
  420. JumpUpFrameN    Move.w    #4,d1
  421.     Bra    NotEndFrameN
  422.         
  423. NoJumpFrameN    Move.b    WalkSpeedN,d1
  424.     Add.b    #1,d0
  425.     Cmp.b    d0,d1
  426.     Bne    NotNewFrameN
  427.     
  428.     Move.b    #0,d0
  429.     Move.b    WalkFrameN,d1
  430.     Add.b    #1,d1
  431.     Cmpi.b    #4,d1
  432.     Beq    EndFrameN
  433.     Cmpi.b    #5,d1
  434.     Beq    EndFrameN
  435.     Cmpi.b    #6,d1
  436.     Beq    EndFrameN
  437.     Bra    NotEndFrameN
  438.     
  439. EndFrameN    Move.b    #0,d1
  440.     
  441. NotEndFrameN    Move.b    d1,WalkFrameN
  442. NotNewFrameN    Move.b    d0,WalkCounterN
  443. NoWalkFramesN    Rts
  444.  
  445. CRecallNastyMap    Bsr    ProcNastyPos
  446.     Lea    CNastyRecA,a0
  447.     Bra    DoCRecallPoke
  448.  
  449. CRecallBlokeMap    Bsr    ProcBlokePos
  450.     Lea    CBlokeRecA,a0
  451.  
  452. DoCRecallPoke    Bsr    DoPosCalc
  453.     Move.l    #Piccy,d2
  454.     Move.l    #PiccyBack,d1
  455.     Add.l    d0,d2
  456.     Add.l    d0,d1
  457.     
  458. DoCBlitPoke    Move.w    d1,4(a0)
  459.     Swap    d1
  460.     Move.w    d1,(a0)
  461.     
  462.     Move.w    d2,12(a0)
  463.     Swap    d2
  464.     Move.w    d2,8(a0)
  465.     Rts
  466.     
  467. DoBlokeFrame    Moveq    #0,d0
  468.     Moveq    #0,d1
  469.     
  470.     Move.b    WalkFrame,d1
  471.     Move.l    #1920,d0
  472.     Muls    d1,d0
  473.  
  474.     Btst    #0,DireFlag
  475.     Bne    RightFrame
  476.     Add.w    #6,d0
  477.         
  478. RightFrame    Rts    
  479.  
  480. DoNastyFrame    Moveq    #0,d0
  481.     Moveq    #0,d1
  482.     
  483.     Move.b    WalkFrameN,d1
  484.     Move.l    #1920,d0
  485.     Muls    d1,d0
  486.  
  487.     Btst    #0,DireFlagN
  488.     Bne    RightFrameN
  489.     Add.w    #6,d0
  490.         
  491. RightFrameN    Rts    
  492.  
  493. ProcBlokePos    Moveq    #0,d5
  494.     Moveq    #0,d6
  495.     Move.w    BlokeXPos,d5
  496.     Move.w    BlokeYPos,d6
  497.     Move.w    #288,d3
  498.     Move.w    #200,d4
  499.     Bsr    DoProc
  500.     Move.w    BlokeFrame,d7
  501.     Move.w    d5,BlokeXpos
  502.     Move.w    d6,BlokeYpos
  503.     Rts
  504.  
  505. ProcNastyPos    Moveq    #0,d5
  506.     Moveq    #0,d6
  507.     Move.w    NastyXPos,d5
  508.     Move.w    NastyYPos,d6
  509.     Move.w    #288,d3
  510.     Move.w    #200,d4
  511.     Bsr    DoProc
  512.     Move.w    NastyFrame,d7
  513.     Move.w    d5,NastyXpos
  514.     Move.w    d6,NastyYpos
  515.     Rts
  516.  
  517. ProcGoodyPos    Moveq    #0,d5
  518.     Moveq    #0,d6
  519.     Move.w    GoodyXPos,d5
  520.     Move.w    GoodyYPos,d6
  521.     Move.w    #303,d3
  522.     Move.w    #208,d4
  523.     Bsr    DoProc
  524.     Move.w    d5,GoodyXpos
  525.     Move.w    d6,GoodyYpos
  526.     Rts
  527.     
  528. DoProc    Tst.w    d5
  529.     Bpl    NoClearD5
  530.     Clr.w    d5
  531.     
  532. NoClearD5    Tst.w    d6
  533.     Bpl    NoClearD6
  534.     Clr.w    d6
  535.         
  536. NoClearD6    Cmp.w    d3,d5
  537.     Ble    ObjXnover
  538.     Move.w    d3,d5
  539.     
  540. ObjXnover    Cmp.w    d4,d6
  541.     Ble    ObjYnover
  542.     Move.w    d4,d6
  543.     
  544. ObjYnover    Rts
  545.  
  546. DoPosCalc    Moveq    #0,d0
  547.     Move.l    #200,d4
  548.     Muls    d6,d4
  549.     Add.l    d4,d0
  550.     Move.w    d5,d4
  551.     Asr.w    #3,d5
  552.     Bclr    #0,d5
  553.     Add.l    d5,d0
  554.     And.w    #$f,d4
  555.     Move.w    d4,d3
  556.     Asl.w    #8,d4
  557.     Asl.w    #4,d4
  558.     Rts
  559.  
  560. BlitterWait    Btst    #6,DmaConr(A6)
  561.     Bne    BlitterWait
  562.     Rts
  563.     
  564. TrackMouse    Move.w    $Dff00a,d0
  565.     Move.b    OldX,d1
  566.     Move.b    d0,OldX   
  567.     Sub.b    d0,d1
  568.     Ext.w    d1
  569.     Sub.w    d1,NastyXPos
  570.  
  571.     Lsr.w    #8,d0
  572.     Move.b    OldY,d1
  573.     Move.b    d0,OldY
  574.     Sub.b    d0,d1
  575.     Ext.w    d1
  576.     Sub.w    d1,NastyYPos
  577.     Rts
  578.     
  579. SetMouse    Move.w    $Dff00a,d0
  580.     Move.b    d0,OldX
  581.     Lsr.w    #8,d0
  582.     Move.b    d0,Oldy
  583.     Rts
  584.  
  585. BlokeCon    Move.b    MoveFlag,d0
  586.     Move.b    CollFlag,d1
  587.     Move.b    JumpFlag,d2
  588.     Move.b    CollFlag1,d3
  589.     Btst    #0,d2
  590.     Bne    JoyAction
  591.     Btst    #2,d1
  592.     Bne    OnFloor
  593.     Btst    #2,d3
  594.     Bne    OnFloor
  595. FreeFall    Add.w    #FallSpeed,BlokeYPos    
  596.     Move.b    #5,WalkFrame
  597.     Bset    #1,JumpFlag
  598.     Bra    FloorTest
  599.     
  600. OnFloor    Bclr    #1,JumpFlag
  601. FloorTest    Btst    #5,d0
  602.     Bne    JoyAction
  603.     Rts
  604.     
  605. JoyAction    Btst    #0,d0
  606.     Beq    NoMoveRight
  607.     Btst    #0,d3
  608.     Bne    NoMoveRight
  609.     Btst    #0,d2
  610.     Bne    BypassRColl
  611.     Btst    #0,d1
  612.     Bne    NoMoveRight
  613. BypassRColl    Add.w    #MoveSpeed,BlokeXPos
  614.     Bset    #0,DireFlag
  615.     
  616. NoMoveRight    Btst    #1,d0
  617.     Beq    NoMoveLeft
  618.     Btst    #1,d3
  619.     Bne    NoMoveLeft
  620.     Btst    #0,d2
  621.     Bne    BypassLColl
  622.     Btst    #1,d1
  623.     Bne    NoMoveLeft
  624. BypassLColl    Sub.w    #MoveSpeed,BlokeXPos
  625.     Bclr    #0,DireFlag
  626.     
  627. NoMoveLeft    Btst    #3,d0
  628.     Beq    NoJumpUp
  629.     Btst    #0,d2
  630.     Bne    NoJumpUp
  631.     Btst    #2,d1
  632.     Bne    JumpUp
  633.     Btst    #2,d3
  634.     Bne    JumpUp
  635.     Bra    NoJumpUp
  636.     
  637. JumpUp    Bset    #0,JumpFlag
  638.     Move.b    #0,JumpFlag1
  639.     
  640. NoJumpup    And.b    #$f,d0
  641.     Move.b    d0,MoveFlag1
  642.     
  643.     Btst    #0,d2
  644.     Bne    Jumping
  645.     Rts    
  646.     
  647. Jumping    Move.w    JumpDown,d0
  648.     Move.b    JumpFlag1,d1
  649.     Cmp.b    d0,d1
  650.     Ble    JumpingUp
  651.     
  652.     Btst    #2,CollFlag
  653.     Beq    JumpingUpA
  654.     Bra    JumpingUpB
  655.     
  656. JumpingUpA    Btst    #2,CollFlag1
  657.     Beq    JumpingUp
  658.     
  659.     Btst    #4,CollFlag1
  660.     Bne    JumpingUp
  661.         
  662. JumpingUpB    Btst    #3,CollFlag
  663.     Beq    EndJump
  664.     
  665.     Btst    #3,CollFlag1
  666.     Bne    EndJump
  667.     
  668. JumpingUp    Lea    JumpSpeed,a0
  669.     Moveq    #0,d0
  670.     Move.b    JumpFlag1,d0
  671.     Add.b    #1,d0
  672.     Move.w    JumpFrames,d1
  673.     Cmp.b    d0,d1
  674.     Beq    EndJump
  675.     Move.b    d0,JumpFlag1
  676.     Asl.w    #1,d0
  677.     Add.l    d0,a0
  678.     Move.w    (a0),d1
  679.     Add.w    d1,BlokeYPos
  680.     Rts
  681.     
  682. EndJump    Bclr    #0,JumpFlag
  683.     Move.b    #0,WalkFrame
  684.     Btst    #2,CollFlag
  685.     Bne    NoFreeFall
  686.     Btst    #2,CollFlag1
  687.     Bne    NoFreeFall
  688.     Move.b    #5,WalkFrame
  689.     Bset    #1,JumpFlag
  690.     Add.w    #1,BlokeYPos
  691.     
  692. NoFreeFall    Rts    
  693.  
  694. NastyCon    Move.b    MoveFlagN,d0
  695.     Move.b    CollFlagN,d1
  696.     Move.b    JumpFlagN,d2
  697.     Move.b    CollFlag1N,d3
  698.     Btst    #0,d2
  699.     Bne    JoyActionN
  700.     Btst    #2,d1
  701.     Bne    OnFloorN
  702.     Btst    #2,d3
  703.     Bne    OnFloorN
  704. FreeFallN    Add.w    #1,NastyYPos    
  705.     Move.b    #5,WalkFrameN
  706.     Bset    #1,JumpFlagN
  707.     Bra    FloorTestN
  708.     
  709. OnFloorN    Bclr    #1,JumpFlagN
  710. FloorTestN    Btst    #5,d0
  711.     Bne    JoyActionN
  712.     Rts
  713.     
  714. JoyActionN    Btst    #0,d0
  715.     Beq    NoMoveRightN
  716.     Btst    #0,d3
  717.     Bne    NoMoveRightN
  718.     Btst    #0,d2
  719.     Bne    BypassRCollN
  720.     Btst    #0,d1
  721.     Bne    NoMoveRightN
  722. BypassRCollN    Add.w    #1,NastyXPos
  723.     Bset    #0,DireFlagN
  724.     
  725. NoMoveRightN    Btst    #1,d0
  726.     Beq    NoMoveLeftN
  727.     Btst    #1,d3
  728.     Bne    NoMoveLeftN
  729.     Btst    #0,d2
  730.     Bne    BypassLCollN
  731.     Btst    #1,d1
  732.     Bne    NoMoveLeftN
  733. BypassLCollN    Sub.w    #1,NastyXPos
  734.     Bclr    #0,DireFlagN
  735.     
  736. NoMoveLeftN    Btst    #3,d0
  737.     Beq    NoJumpUpN
  738.     Btst    #0,d2
  739.     Bne    NoJumpUpN
  740.     Btst    #2,d1
  741.     Bne    JumpUpN
  742.     Btst    #2,d3
  743.     Bne    JumpUpN
  744.     Bra    NoJumpUpN
  745.     
  746. JumpUpN    Bset    #0,JumpFlagN
  747.     Move.b    #0,JumpFlag1N
  748.     
  749. NoJumpupN    And.b    #$f,d0
  750.     Move.b    d0,MoveFlag1N
  751.     
  752.     Btst    #0,d2
  753.     Bne    JumpingN
  754.     Rts    
  755.     
  756. JumpingN    Move.w    JumpDownN,d0
  757.     Move.b    JumpFlag1N,d1
  758.     Cmp.b    d0,d1
  759.     Ble    JumpingUpN
  760.     
  761.     Btst    #2,CollFlagN
  762.     Beq    JumpingUpAN
  763.     Bra    JumpingUpBN
  764.     
  765. JumpingUpAN    Btst    #2,CollFlag1N
  766.     Beq    JumpingUpN
  767.     
  768.     Btst    #4,CollFlag1N
  769.     Bne    JumpingUpN
  770.         
  771. JumpingUpBN    Btst    #3,CollFlagN
  772.     Beq    EndJumpN
  773.     
  774.     Btst    #3,CollFlag1N
  775.     Bne    EndJumpN
  776.     
  777. JumpingUpN    Lea    JumpSpeedN,a0
  778.     Moveq    #0,d0
  779.     Move.b    JumpFlag1N,d0
  780.     Add.b    #1,d0
  781.     Move.w    JumpFramesN,d1
  782.     Cmp.b    d0,d1
  783.     Beq    EndJumpN
  784.     Move.b    d0,JumpFlag1N
  785.     Asl.w    #1,d0
  786.     Add.l    d0,a0
  787.     Move.w    (a0),d1
  788.     Add.w    d1,NastyYPos
  789.     Rts
  790.     
  791. EndJumpN    Bclr    #0,JumpFlagN
  792.     Move.b    #0,WalkFrameN
  793.     Btst    #2,CollFlagN
  794.     Bne    NoFreeFallN
  795.     Btst    #2,CollFlag1N
  796.     Bne    NoFreeFallN
  797.     Move.b    #5,WalkFrameN
  798.     Bset    #1,JumpFlagN
  799.     Add.w    #1,NastyYPos
  800.     
  801. NoFreeFallN    Rts    
  802.     
  803. BlokeCollDet    Lea    MapData,a1
  804.     Move.w    BlokeXPos,d6
  805.     Move.w    BlokeYPos,d7
  806.     
  807.     Move.b    #$00,CollFlag
  808.     Move.b    #$00,CollFlag1
  809.     
  810.     Bclr    #7,DireFlag
  811.     Bra    DoCollTests
  812.     
  813. NastyCollDet    Lea    MapData,a1
  814.     Move.w    NastyXPos,d6
  815.     Move.w    NastyYPos,d7
  816.     
  817.     Move.b    #$00,CollFlagN
  818.     Move.b    #$00,CollFlag1N
  819.     
  820.     Bset    #7,DireFlag
  821.  
  822. DoCollTests    Move.w    #22,d4
  823.     Move.w    #29,d5
  824.     Moveq    #0,d3
  825.     Bsr    DoCollDet
  826.  
  827.     Move.w    #10,d4
  828.     Move.w    #29,d5
  829.     Move.w    #1,d3
  830.     Bsr    DoCollDet
  831.  
  832.     Move.w    #16,d4
  833.     Move.w    #32,d5
  834.     Move.w    #2,d3
  835.     Bsr    DoCollDet
  836.  
  837.     Move.w    #16,d4
  838.     Move.w    #31,d5
  839.     Move.w    #3,d3
  840.     Bsr    DoCollDet
  841.  
  842.     Move.w    #16,d4
  843.     Move.w    #30,d5
  844.     Move.w    #4,d3
  845.     Bsr    DoCollDet
  846.  
  847.     Rts
  848.         
  849. DoCollDet    Move.w    d6,d0
  850.     Move.w    d7,d1
  851.     Add.w    d4,d0
  852.     Add.w    d5,d1
  853.     Move.l    a1,a0
  854.     Asr.w    #3,d0
  855.     Asr.w    #3,d1
  856.     Moveq    #0,d4
  857.     Move.l    #40,d2
  858.     Muls    d1,d2
  859.     Move.w    d2,d4
  860.     Add.w    d0,d4
  861.     Asl.l    #1,d4
  862.     Add.l    d4,a0
  863.     Move.b    (a0),d0
  864.     Btst    #7,d0
  865.     Beq    NoCollisA
  866.     Btst    #7,DireFlag
  867.     Bne    DoNastyCSet
  868.     Bset    d3,CollFlag
  869.     Bra    NoCollisA
  870. DoNastyCSet    Bset    d3,CollFlagN
  871. NoCollisA    Btst    #6,d0
  872.     Beq    NoCollisB
  873.     Btst    #7,DireFlag
  874.     Bne    DoNastyCSet1
  875.     Bset    d3,CollFlag1
  876.     Bra    NoCollisB
  877. DoNastyCSet1    Bset    d3,CollFlag1N
  878. NoCollisB    Rts
  879.     
  880. TrackStick    Lea    MoveFlag,a5
  881.     Lea    HardWare+Joy1Dat,a0
  882.     Bra    TestJoy
  883.  
  884. TrackStickN    Lea    MoveFlagN,a5
  885.     Lea    HardWare+Joy0Dat,a0
  886.     
  887. TestJoy    And.w    #%11000000,(a5)
  888.     Move.w    (a0),d0          
  889.     Btst    #1,d0            
  890.     Beq    JoyLeft
  891.     
  892. GoRight    Bset    #0,(a5)
  893.     Bset    #5,(a5)
  894.     
  895. JoyLeft    Btst    #9,d0            
  896.     Beq    JoyDown
  897.  
  898. GoLeft    Bset    #1,(a5)
  899.     Bset    #5,(a5)
  900.     
  901. JoyDown    Move.w    d0,d1            
  902.     Lsr.w    #1,d1            
  903.     Eor.w    d0,d1            
  904.     Btst    #0,d1            
  905.     Beq    JoyUp
  906.  
  907. GoDown    ;Bset    #2,(a5)
  908.     ;Bset    #5,(a5)
  909.  
  910. JoyUp    Btst    #$8,d1           
  911.     Beq    JoyFire
  912.  
  913. GoUp    Bset    #3,(a5)
  914.     Bset    #5,(a5)
  915.  
  916. JoyFire    Btst    #7,$Bfe001
  917.     Bne    NoJoyFire
  918.  
  919. GoFire    Bset    #4,(a5)
  920.     Bset    #5,(a5)
  921.  
  922. NoJoyFire    Rts
  923.  
  924. KeyBoard    Lea    MoveFlagN,a5
  925.     Lea    $Bfec01,a0
  926.     Lea    $Bfee01,a1
  927.     
  928. TestBoard    Moveq    #0,d0
  929.     Move.b    (a0),d0
  930.     Not.b    d0
  931.     Ror.b    #1,d0
  932.     Move.b    d0,d1
  933.  
  934.     Bset    #6,(a1)
  935.     Move.b    #0,(a0)
  936.     Nop
  937.     Move.b    #$ff,(a0)
  938.     Nop
  939.     Bclr    #6,(a1)
  940.     
  941.     Bclr    #7,d0
  942.     
  943.     Cmpi.b    #$19,d0
  944.     Bne    NoKeyRight
  945.  
  946.     Btst    #7,d1
  947.     Beq    DRight
  948.     Bclr    #0,(a5)
  949.     ;Bclr    #5,(a5)
  950.     Bra    NoKeyLeft
  951.  
  952. DRight    Bset    #0,(a5)
  953.     ;Bset    #5,(a5)
  954.     Bra    NoKeyLeft
  955.     
  956. NoKeyRight    Cmpi.b    #$18,d0
  957.     Bne    NoKeyLeft
  958.  
  959.     Btst    #7,d1
  960.     Beq    DLeft
  961.     Bclr    #1,(a5)
  962.     ;Bclr    #5,(a5)
  963.     Bra    NoKeyLeft
  964.     
  965. Dleft    Bset    #1,(a5)
  966.     ;Bset    #5,(a5)
  967.  
  968. NoKeyLeft    Cmpi.b    #$20,d0
  969.     Bne    NoKeyDown
  970.  
  971.     ;Bset    #2,(a5)
  972.     ;Bset    #5,(a5)
  973.     Bra    NoKeyDown
  974.  
  975. NoKeyDown    Cmpi.b    #$10,d0
  976.     Bne    NoKeyUp
  977.  
  978.     Btst    #7,d1
  979.     Beq    DUp
  980.     Bclr    #3,(a5)
  981.     ;Bclr    #5,(a5)
  982.     Bra    NoKeyUp
  983.     
  984. DUp    Bset    #3,(a5)
  985.     ;Bset    #5,(a5)
  986.  
  987. NoKeyUp    Cmpi.b    #$38,d0
  988.     Bne    NoKeyFire
  989.     
  990.     Bset    #4,(a5)
  991.     ;Bset    #5,(a5)
  992.  
  993. NokeyFire    Move.b    (a5),d0
  994.     And.b    #$0f,d0
  995.     Cmpi.b    #0,d0
  996.     Bne    Movement
  997.     Bclr    #5,(a5)
  998.     Bra    DoneKeys
  999. Movement    Bset    #5,(a5)
  1000.  
  1001. DoneKeys    Rts
  1002.  
  1003. SetGoodies    Lea    GoodiesList,a0
  1004.     Move.w    #0,GoodNumber
  1005.     Move.w    (a0)+,d7    
  1006.  
  1007. GoodySetLoop    Moveq    #0,d0
  1008.     Moveq    #0,d1
  1009.     Move.b    (a0),d0
  1010.     Move.b    1(a0),d1
  1011.     Btst    #0,d0
  1012.     Beq    GoodNoMore
  1013.  
  1014.     Move.b    6(a0),d4
  1015.     Move.b    7(a0),d5
  1016.     
  1017.     Move.b    TimeMins,d6
  1018.     Cmp.b    d4,d6
  1019.     Bne    GoodNoMore
  1020.  
  1021.     Move.b    TimeSecs,d6
  1022.     Cmp.b    d5,d6
  1023.     Bne    GoodNoMore
  1024.     
  1025.     Btst    #7,(a0)
  1026. ;    Bne    GoodNoMore
  1027.  
  1028.     Bsr    DoTheGood
  1029.  
  1030. GoodNoMore    Add.w    #1,GoodNumber
  1031.     Add.l    #8,a0
  1032.     Dbf    d7,GoodySetLoop
  1033.     Rts
  1034.     
  1035. DoTheGood    Moveq    #0,d0
  1036.     Bset    #7,(a0)
  1037.     Move.w    GoodNumber,d0
  1038.     Add.w    #1,GoodPlace
  1039.     Move.w    GoodPlace,d5
  1040.     Move.w    GoodiesList,d6
  1041.     Cmp.b    d5,d6
  1042.     Beq    NoMoreCGoods
  1043.     
  1044.     Lea    CGoodTable,a1    
  1045.     Lea    CGoodRecTable,a2
  1046.     Asl.w    #2,d0
  1047.     Add.l    d0,a1
  1048.     Add.l    d0,a2
  1049.     Move.l    (a1),a1
  1050.     Move.l    (a2),a2
  1051.     
  1052.     Lea    GoodyData,a3
  1053.     Lea    GoodyMask,a4
  1054.     Asl.w    #1,d1
  1055.     Add.l    d1,a3
  1056.     Add.l    d1,a4
  1057.     
  1058.     Lea    Piccy,a5    
  1059.     Lea    PiccyBack,a6    
  1060.     
  1061.     Move.w    2(a0),d3
  1062.     Move.w    4(a0),d4
  1063.     
  1064.     Asl.w    #1,d3
  1065.     Move.l    #$c8,d2
  1066.     Muls    d4,d2
  1067.     Add.w    d3,d2
  1068.     Add.l    d2,a5
  1069.     Add.l    d2,a6
  1070.     
  1071.     Move.l    a4,d0
  1072.     Move.w    d0,4(a1)
  1073.     Swap    d0
  1074.     Move.w    d0,(a1)
  1075.     Add.l    #8,a1
  1076.     
  1077.     Move.l    a3,d0
  1078.     Move.w    d0,4(a1)
  1079.     Swap    d0
  1080.     Move.w    d0,(a1)
  1081.     Add.l    #8,a1
  1082.     
  1083.     Move.l    a5,d0
  1084.     Move.w    d0,4(a1)
  1085.     Swap    d0
  1086.     Move.w    d0,(a1)
  1087.     Add.l    #8,a1
  1088.     
  1089.     Move.l    a5,d0
  1090.     Move.w    d0,4(a1)
  1091.     Swap    d0
  1092.     Move.w    d0,(a1)
  1093.     Add.l    #8,a1
  1094.     
  1095.     Move.l    a6,d0
  1096.     Move.w    d0,4(a2)
  1097.     Swap    d0
  1098.     Move.w    d0,(a2)
  1099.     Add.l    #8,a2
  1100.     
  1101.     Move.l    a5,d0
  1102.     Move.w    d0,4(a2)
  1103.     Swap    d0
  1104.     Move.w    d0,0(a2)
  1105.     
  1106. NoMoreCGoods    Rts
  1107.     
  1108. Timer    Move.l    #0,d6
  1109.     
  1110.     Move.w    #1,FontXPos
  1111.     Move.w    #1,FontYPos
  1112.     
  1113.     Move.w    #"T",FontChar
  1114.     Bsr    DoFontBlit
  1115.     Add.w    #1,FontXPos    
  1116.     Move.w    #"I",FontChar
  1117.     Bsr    DoFontBlit
  1118.     Add.w    #1,FontXPos    
  1119.     Move.w    #"M",FontChar
  1120.     Bsr    DoFontBlit
  1121.     Add.w    #1,FontXPos    
  1122.     Move.w    #"E",FontChar
  1123.     Bsr    DoFontBlit
  1124.     Add.w    #1,FontXPos    
  1125.     
  1126.     Move.b    TimeMins,d6
  1127.     Bsr    DoTens
  1128.     Add.w    #1,FontXPos
  1129.     
  1130.     Move.w    #":",FontChar
  1131.     Bsr    DoFontBlit
  1132.     Add.w    #1,FontXPos    
  1133.  
  1134.     Move.b    TimeSecs,d6
  1135.     Bra    DoTens
  1136.  
  1137. DiagNostix    Move.l    #0,d6
  1138.     Move.b    DiagVal,d6
  1139.     
  1140.     Move.w    #0,FontXPos
  1141.     Move.w    #0,FontYPos
  1142.     
  1143.     Move.l    #10000,d1
  1144.     Bsr    DoDiagDivs
  1145.     Add.w    #1,FontXPos
  1146. DoThousands    Move.l    #1000,d1
  1147.     Bsr    DoDiagDivs
  1148.     Add.w    #1,FontXPos    
  1149. DoHundreds    Move.l    #100,d1
  1150.     Bsr    DoDiagDivs
  1151.     Add.w    #1,FontXPos
  1152. DoTens    Move.l    #10,d1
  1153.     Bsr    DoDiagDivs
  1154.     Add.w    #1,FontXPos
  1155. DoUnits    Move.l    #1,d1
  1156.     Bsr    DoDiagDivs
  1157.     
  1158.     Rts
  1159.     
  1160. DoDiagDivs    Divs    d1,d6    
  1161.     Move.w    d6,FontChar
  1162.     And.w    #$f,FontChar
  1163.     Add.w    #48,FontChar
  1164.  
  1165.     Bsr    DoFontBlit
  1166.  
  1167.     Move.w    #0,d6
  1168.     Swap    d6
  1169.     Rts    
  1170.  
  1171. DoFontBlit    Move.l    #0,d0
  1172.     Move.l    #0,d1
  1173.     Move.l    #0,d2
  1174.     
  1175.     Lea    FontData,a0    
  1176.     Move.w    FontChar,d0
  1177.     Move.w    FontXPos,d1
  1178.     Move.w    FontYPos,d2
  1179.     Move.l    #0,d3
  1180.     
  1181.     Asl.w    #1,d1
  1182.     Add.l    d1,d3
  1183.     Move.l    #3200,d1
  1184.     Muls    d2,d1
  1185.     Add.l    d1,d3
  1186.     
  1187.     Sub.w    #32,d0
  1188.     Move.l    #2,d1
  1189.     Muls    d0,d1
  1190.     Add.l    d1,a0
  1191.     
  1192.     Lea    Piccy,a1
  1193.     Add.l    d3,a1
  1194.     Bsr    ActualFontBlit    
  1195.     Lea    PiccyBack,a1
  1196.     Add.l    d3,a1
  1197.     Bra    ActualFontBlit    
  1198.  
  1199. ActualFontBlit    Lea    Hardware,a6
  1200.     Bsr    BlitterWait
  1201.     Move.l    #$ffffffff,Bltafwm(a6)    
  1202.     Move.l    a0,Bltapth(a6)
  1203.     Move.l    a1,Bltdpth(a6)
  1204.     Move.w    #118,Bltamod(a6)
  1205.     Move.w    #38,Bltdmod(a6)
  1206.     Move.w    #$09f0,Bltcon0(a6)
  1207.     Move.w    #$0000,Bltcon1(a6)
  1208.     Move.w    #(16*5)*64+1,BltSize(a6)
  1209.     
  1210.     Rts
  1211.  
  1212. Helpos
  1213.     Move.w    IntEnSave,d7
  1214.     Bset    #$F,d7
  1215.     Move.w    d7,$Dff09A
  1216.     Move.w    IntRqSave,d7
  1217.     Bset    #$F,d7
  1218.     Move.w    d7,$Dff09C
  1219.     Move.w    DMASave,d7
  1220.     Bset    #$F,d7
  1221.     Move.w    d7,$Dff096
  1222.     Move.w    #$F,$Dff096
  1223.     Move.w    ADKSave,d7
  1224.     Bset    #$F,d7
  1225.     Move.w    d7,$Dff09E
  1226.     Move.l    GFXBase,a0
  1227.     Move.l    $26(a0),$Dff080
  1228.     Move.l    $4,a6
  1229.     Jsr    -138(a6)    _LVOPermit
  1230.     Move.l    SYSStack,d0        
  1231.     Jsr    -156(a6)    _LVOUserState
  1232.     Rts
  1233.     
  1234. DoCopperShade    Lea    CopperShade,a0
  1235.     Move.w    #229,d7
  1236.     Move.w    #$32,d6
  1237.     Move.w    #$fff,d1
  1238.     Move.w    #$00f,d2
  1239.     Move.w    #0,d3
  1240.     
  1241. DoShade    Move.b    d6,(a0)
  1242.     Add.l    #6,a0
  1243.  
  1244.     Move.w    d2,d0
  1245.     Add.w    #1,d3
  1246.     Cmpi.b    #16,d3
  1247.     Bne    NoColChange
  1248.     Sub.w    #$001,d2
  1249.     Sub.w    #$110,d1
  1250.     Move.w    #0,d3
  1251. NoColChange    And.w    #$fff,d0
  1252.     Move.w    d0,(a0)
  1253.     Add.l    #4,a0    
  1254.  
  1255.     Move.w    #4,d5
  1256.     Move.w    d1,d0
  1257.     
  1258. DoColour    Bsr    Darken
  1259.     Bsr    Darken
  1260.     And.w    #$fff,d0
  1261.     Move.w    d0,(a0)
  1262.     Add.l    #4,a0
  1263.     Dbf    d5,DoColour
  1264.     Add.l    #2,a0
  1265.     
  1266.     Add.w    #1,d6    
  1267.     Dbf    d7,DoShade
  1268.     
  1269.     Lea    CopperShade,a0
  1270.     Move.w    #$30,d0
  1271.     Move.w    #229,d1
  1272. CopperWaitLoop    Add.w    #1,d0
  1273.     Move.b    d0,(a0)
  1274.     Cmpi.w    #$100,d0
  1275.     Bne    PalCopper
  1276.     Move.w    #$ffe1,(a0)
  1277.     Move.w    #0,d0
  1278.     
  1279. PalCopper    Add.l    #32,a0
  1280.     Dbf    d1,CopperWaitLoop
  1281.     
  1282.     Rts
  1283.     
  1284. Darken    Move.w    d0,d4
  1285.     And.w    #$f,d4
  1286.     Cmpi.b    #0,d4
  1287.     Beq    NoDecBlue
  1288.     Sub.w    #$1,d0
  1289. NoDecBlue    Move.w    d0,d4
  1290.     Asr.w    #4,d4
  1291.     And.w    #$f,d4
  1292.     Cmpi.b    #0,d4
  1293.     Beq    NoDecGreen
  1294.     Sub.w    #$10,d0
  1295. NoDecGreen    Move.w    d0,d4
  1296.     Asr.w    #8,d4
  1297.     And.w    #$f,d4
  1298.     Cmpi.b    #0,d4
  1299.     Beq    NoDecRed
  1300.     Sub.w    #$100,d0
  1301. NoDecRed    Rts
  1302.     
  1303. Interrupts
  1304.     Movem.l    d0-d7/a0-a6,-(a7)
  1305.     Movem.l    (a7)+,d0-d7/a0-a6
  1306.     Move.w    #$2000,$Dff09c
  1307.     Rte
  1308.  
  1309. ; System Variables
  1310.     
  1311. SYSStack    Dc.l    0
  1312. GFXBase    Dc.l    0
  1313. InitialSP    Dc.l    0
  1314. OldInterrupts    Dc.l    0
  1315. IntEnSave    Dc.w    0    
  1316. IntRqSave    Dc.w    0
  1317. DMASave    Dc.w    0
  1318. ADKSave    Dc.w    0
  1319. GFXLib    Dc.b    'graphics.library',0
  1320.     Even
  1321.     
  1322. ; Program Variables
  1323.  
  1324. BlokeXPos    Dc.w    0
  1325. BlokeYPos    Dc.w    0
  1326. BlokeFrame    Dc.w    0
  1327. NastyXPos    Dc.w    0
  1328. NastyYPos    Dc.w    0
  1329. NastyFrame    Dc.w    0
  1330. GoodyXPos    Dc.w    0
  1331. GoodyYPos    Dc.w    0
  1332. GoodyFrame    Dc.w    0
  1333. ScoreXPos    Dc.w    0
  1334. ScoreYPos    Dc.w    0
  1335. ScoreFrame    Dc.w    0
  1336. OldX    Dc.w    0
  1337. OldY    Dc.w    0
  1338. MoveFlag    Dc.b    0
  1339. MoveFlag1    Dc.b    0
  1340. JumpFlag    Dc.b    0
  1341. JumpFlag1    Dc.b    0
  1342. CollFlag    Dc.b    0
  1343. CollFlag1    Dc.b    0
  1344. DireFlag    Dc.b    0
  1345. WalkFrame    Dc.b    0
  1346. WalkSpeed    Dc.b    4
  1347. WalkCounter    Dc.b    0
  1348.  
  1349. MoveFlagN    Dc.b    0
  1350. MoveFlag1N    Dc.b    0
  1351. JumpFlagN    Dc.b    0
  1352. JumpFlag1N    Dc.b    0
  1353. CollFlagN    Dc.b    0
  1354. CollFlag1N    Dc.b    0
  1355. DireFlagN    Dc.b    0
  1356. WalkFrameN    Dc.b    0
  1357. WalkSpeedN    Dc.b    6
  1358. WalkCounterN    Dc.b    0
  1359.  
  1360. TimeFrame    Dc.b    0
  1361. TimeSecs    Dc.b    0
  1362. TimeMins    Dc.b    0
  1363. TimeHour    Dc.b    0
  1364.  
  1365. FontAdd    Dc.l    0
  1366. FontChar    Dc.w    0
  1367. FontXPos    Dc.w    0
  1368. FontYPos    Dc.w    0
  1369.  
  1370. DiagVal    Dc.w    47
  1371. DiagReg    Dc.w    12
  1372. DiagX    Dc.w    0
  1373.         
  1374. JumpFrames    Dc.w    79
  1375. JumpDown    Dc.w    39
  1376.     
  1377. JumpSpeed    Dc.w    -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1
  1378.     Dc.w    0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
  1379.  
  1380. JumpFramesN    Dc.w    79
  1381. JumpDownN    Dc.w    39
  1382.     
  1383. JumpSpeedN    Dc.w    -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1
  1384.     Dc.w    0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
  1385.  
  1386. GoodiesList    Dc.w    10
  1387.  
  1388.     Dc.b    0,000,0,001,0,208,0,003
  1389.     Dc.b    0,001,0,002,0,208,0,004
  1390.     Dc.b    0,002,0,003,0,208,0,005
  1391.     Dc.b    0,003,0,004,0,208,0,006
  1392.     Dc.b    0,004,0,005,0,208,0,007
  1393.     Dc.b    0,005,0,006,0,208,0,008
  1394.     Dc.b    0,006,0,007,0,208,0,009
  1395.     Dc.b    0,007,0,008,0,208,0,010
  1396.     Dc.b    0,008,0,001,0,192,0,011
  1397.     Dc.b    0,009,0,002,0,192,0,012
  1398.     Dc.b    0,010,0,003,0,192,0,013
  1399.     Dc.b    0,011,0,004,0,192,0,014
  1400.     Dc.b    0,012,0,005,0,192,0,015
  1401.     Dc.b    0,013,0,006,0,192,0,016
  1402.     Dc.b    0,014,0,007,0,192,0,017
  1403.     Dc.b    0,015,0,008,0,192,0,018
  1404.     
  1405. GoodPlace    Dc.w    0    
  1406. GoodNumber    Dc.w    0    
  1407.  
  1408. CGoodRecTable    Dc.l    CGood1RecA,CGood2RecA,CGood3RecA,CGood4RecA
  1409.     Dc.l    CGood5RecA,CGood6RecA,CGood7RecA,CGood8RecA
  1410.     Dc.l    CGood9RecA,CGood10RecA,CGood1RecA,CGood2RecA
  1411.     Dc.l    CGood3RecA,CGood4RecA,CGood5RecA,CGood6RecA
  1412.  
  1413. CGoodTable    Dc.l    CGood1A,CGood2A,CGood3A,CGood4A
  1414.     Dc.l    CGood5A,CGood6A,CGood7A,CGood8A
  1415.     Dc.l    CGood9A,CGood10A,CGood1A,CGood2A
  1416.     Dc.l    CGood3A,CGood4A,CGood5A,CGood6A
  1417.  
  1418.     Section    "ChipStuff",Code_c
  1419.  
  1420. Newcopper
  1421.     Dc.w    $0001,$7ffe
  1422.     Dc.w    $0044,$ffff,$0046,$ffff
  1423.     Dc.w    $0040,$09f0,$0042,$0000
  1424.     Dc.w    $0050
  1425. CBlokeRecA    Dc.w    $0002,$0052,$2340
  1426.     Dc.w    $0054
  1427. CBlokeRecD    Dc.w    $0002,$0056,$2340
  1428.     Dc.w    $0064,$0022,$0066,$0022
  1429.     Dc.w    $0058,(34*5)*64+3
  1430.  
  1431.     Dc.w    $0401,$7ffe
  1432.     Dc.w    $0044,$ffff,$0046,$ffff
  1433.     Dc.w    $0040,$09f0,$0042,$0000
  1434.     Dc.w    $0050
  1435. CNastyRecA    Dc.w    $0002,$0052,$2340
  1436.     Dc.w    $0054
  1437. CNastyRecD    Dc.w    $0002,$0056,$2340
  1438.     Dc.w    $0064,$0022,$0066,$0022
  1439.     Dc.w    $0058,(34*5)*64+3
  1440.  
  1441.     Dc.w    $0801,$7ffe
  1442.     Dc.w    $0040,$09f0,$0042,$0000
  1443.     Dc.w    $0050
  1444. CGood1RecA    Dc.w    $0002,$0052,$2340
  1445.     Dc.w    $0054
  1446. CGood1RecD    Dc.w    $0002,$0056,$2340
  1447.     Dc.w    $0064,$0026,$0066,$0026
  1448.     Dc.w    $0058,(16*5)*64+1
  1449.  
  1450.     Dc.w    $0a01,$7ffe
  1451.     Dc.w    $0040,$09f0,$0042,$0000
  1452.     Dc.w    $0050
  1453. CGood2RecA    Dc.w    $0002,$0052,$2340
  1454.     Dc.w    $0054
  1455. CGood2RecD    Dc.w    $0002,$0056,$2340
  1456.     Dc.w    $0064,$0026,$0066,$0026
  1457.     Dc.w    $0058,(16*5)*64+1
  1458.  
  1459.     Dc.w    $0c01,$7ffe
  1460.     Dc.w    $0040,$09f0,$0042,$0000
  1461.     Dc.w    $0050
  1462. CGood3RecA    Dc.w    $0002,$0052,$2340
  1463.     Dc.w    $0054
  1464. CGood3RecD    Dc.w    $0002,$0056,$2340
  1465.     Dc.w    $0064,$0026,$0066,$0026
  1466.     Dc.w    $0058,(16*5)*64+1
  1467.  
  1468.     Dc.w    $0e01,$7ffe
  1469.     Dc.w    $0040,$09f0,$0042,$0000
  1470.     Dc.w    $0050
  1471. CGood4RecA    Dc.w    $0002,$0052,$2340
  1472.     Dc.w    $0054
  1473. CGood4RecD    Dc.w    $0002,$0056,$2340
  1474.     Dc.w    $0064,$0026,$0066,$0026
  1475.     Dc.w    $0058,(16*5)*64+1
  1476.  
  1477.     Dc.w    $1001,$7ffe
  1478.     Dc.w    $0040,$09f0,$0042,$0000
  1479.     Dc.w    $0050
  1480. CGood5RecA    Dc.w    $0002,$0052,$2340
  1481.     Dc.w    $0054
  1482. CGood5RecD    Dc.w    $0002,$0056,$2340
  1483.     Dc.w    $0064,$0026,$0066,$0026
  1484.     Dc.w    $0058,(16*5)*64+1
  1485.  
  1486.     Dc.w    $1201,$7ffe
  1487.     Dc.w    $0040,$09f0,$0042,$0000
  1488.     Dc.w    $0050
  1489. CGood6RecA    Dc.w    $0002,$0052,$2340
  1490.     Dc.w    $0054
  1491. CGood6RecD    Dc.w    $0002,$0056,$2340
  1492.     Dc.w    $0064,$0026,$0066,$0026
  1493.     Dc.w    $0058,(16*5)*64+1
  1494.  
  1495.     Dc.w    $1401,$7ffe
  1496.     Dc.w    $0040,$09f0,$0042,$0000
  1497.     Dc.w    $0050
  1498. CGood7RecA    Dc.w    $0002,$0052,$2340
  1499.     Dc.w    $0054
  1500. CGood7RecD    Dc.w    $0002,$0056,$2340
  1501.     Dc.w    $0064,$0026,$0066,$0026
  1502.     Dc.w    $0058,(16*5)*64+1
  1503.  
  1504.     Dc.w    $1601,$7ffe
  1505.     Dc.w    $0040,$09f0,$0042,$0000
  1506.     Dc.w    $0050
  1507. CGood8RecA    Dc.w    $0002,$0052,$2340
  1508.     Dc.w    $0054
  1509. CGood8RecD    Dc.w    $0002,$0056,$2340
  1510.     Dc.w    $0064,$0026,$0066,$0026
  1511.     Dc.w    $0058,(16*5)*64+1
  1512.  
  1513.     Dc.w    $1801,$7ffe
  1514.     Dc.w    $0040,$09f0,$0042,$0000
  1515.     Dc.w    $0050
  1516. CGood9RecA    Dc.w    $0002,$0052,$2340
  1517.     Dc.w    $0054
  1518. CGood9RecD    Dc.w    $0002,$0056,$2340
  1519.     Dc.w    $0064,$0026,$0066,$0026
  1520.     Dc.w    $0058,(16*5)*64+1
  1521.  
  1522.     Dc.w    $1a01,$7ffe
  1523.     Dc.w    $0040,$09f0,$0042,$0000
  1524.     Dc.w    $0050
  1525. CGood10RecA    Dc.w    $0002,$0052,$2340
  1526.     Dc.w    $0054
  1527. CGood10RecD    Dc.w    $0002,$0056,$2340
  1528.     Dc.w    $0064,$0026,$0066,$0026
  1529.     Dc.w    $0058,(16*5)*64+1
  1530.  
  1531.     Dc.w    $2001,$7ffe
  1532.     Dc.w    $0044,$ffff,$0046,$ffff
  1533.     Dc.w    $0040
  1534. CNastyCon    Dc.w    $0fca,$0042,$0000
  1535.     Dc.w    $0050
  1536. CNastyA    Dc.w    $000f,$0052,$0000
  1537.     Dc.w    $004c
  1538. CNastyB    Dc.w    $000f,$004e,$0000
  1539.     Dc.w    $0048
  1540. CNastyC    Dc.w    $000f,$004a,$0000
  1541.     Dc.w    $0054
  1542. CNastyD    Dc.w    $000f,$0056,$0000
  1543.     Dc.w    $0062,$0006,$0064,$0006
  1544.     Dc.w    $0060,$0022,$0066,$0022
  1545.     Dc.w    $0058,(32*5)*64+3
  1546.  
  1547.     Dc.w    $2c01,$7ffe
  1548.     Dc.w    $0044,$ffff,$0046,$ffff
  1549.     Dc.w    $0040
  1550. CBlokeCon    Dc.w    $0fca,$0042,$0000
  1551.     Dc.w    $0050
  1552. CBlokeA    Dc.w    $000f,$0052,$0000
  1553.     Dc.w    $004c
  1554. CBlokeB    Dc.w    $000f,$004e,$0000
  1555.     Dc.w    $0048
  1556. CBlokeC    Dc.w    $000f,$004a,$0000
  1557.     Dc.w    $0054
  1558. CBlokeD    Dc.w    $000f,$0056,$0000
  1559.     Dc.w    $0062,$0006,$0064,$0006
  1560.     Dc.w    $0060,$0022,$0066,$0022
  1561.     Dc.w    $0058,(32*5)*64+3
  1562.     
  1563.     Dc.w    $0100,$200,$1f0,0,$0104,$000A
  1564.     Dc.w    $0092,$0030,$0094,$00c8
  1565.     Dc.w    $008E,$3069,$0090,$36bb
  1566.     Dc.w    $120,0,$122,0,$142,0,$144,0,$146,0
  1567.     Dc.w    $102,$00aa
  1568.     Dc.w    $0108,$a0,$010A,$a0
  1569.     Dc.w    $3001,$fffe
  1570.     Dc.w    $00E0
  1571. Pl0h    Dc.w    $0000
  1572.     Dc.w    $00E2
  1573. Pl0l    Dc.w    $0000
  1574.     Dc.w    $00E4
  1575. Pl1h    Dc.w    $0000
  1576.     Dc.w    $00E6
  1577. Pl1l    Dc.w    $0000
  1578.     Dc.w    $00E8
  1579. Pl2h    Dc.w    $0000
  1580.     Dc.w    $00Ea
  1581. Pl2l    Dc.w    $0000
  1582.     Dc.w    $00Ec
  1583. Pl3h    Dc.w    $0000
  1584.     Dc.w    $00Ee
  1585. Pl3l    Dc.w    $0000
  1586.     Dc.w    $00f0
  1587. Pl4h    Dc.w    $0000
  1588.     Dc.w    $00f2
  1589. Pl4l    Dc.w    $0000
  1590.  
  1591.     Dc.w    $3101,$fffe,$100,$5200
  1592.  
  1593.     Dc.w    $01f0,$0111,$0182,$0ccc,$0184,$0888,$0186,$0444
  1594.     Dc.w    $0188,$0111,$018a,$00f0,$018c,$00c0,$018e,$07f5
  1595.     Dc.w    $0190,$06b4,$0192,$0683,$01a2,$0fff,$01a4,$0fbb,$01a6,$0c57
  1596.     Dc.w    $01a8,$0a07,$01aa,$0dbf,$01ac,$0a5f,$01ae,$0729
  1597.     Dc.w    $01b0,$0ff0,$01b2,$0fb0,$01b4,$0f60,$01b6,$0f20
  1598.     Dc.w    $01b8,$049f,$01ba,$034f,$01bc,$023b,$01be,$0850
  1599.     
  1600.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1601.  
  1602.     Dc.w    $3601,$7ffe
  1603.     Dc.w    $0040
  1604. CGood1Con    Dc.w    $0fca,$0042,$0000
  1605.     Dc.w    $0050
  1606. CGood1A    Dc.w    $000f,$0052,$0000
  1607.     Dc.w    $004c
  1608. CGood1B    Dc.w    $000f,$004e,$0000
  1609.     Dc.w    $0048
  1610. CGood1C    Dc.w    $000f,$004a,$0000
  1611.     Dc.w    $0054
  1612. CGood1D    Dc.w    $000f,$0056,$0000
  1613.     Dc.w    $0062,$0026,$0064,$0026
  1614.     Dc.w    $0060,$0026,$0066,$0026
  1615.     Dc.w    $0058,(16*5)*64+1
  1616.     
  1617. CopShade1    Dc.w    $3801,$fffe
  1618.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1619.     Dc.w    $3901,$fffe
  1620.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1621.     Dc.w    $3a01,$fffe
  1622.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1623.  
  1624.     Dc.w    $4201,$7ffe
  1625.     Dc.w    $0040
  1626. CGood2Con    Dc.w    $0fca,$0042,$0000
  1627.     Dc.w    $0050
  1628. CGood2A    Dc.w    $000f,$0052,$0000
  1629.     Dc.w    $004c
  1630. CGood2B    Dc.w    $000f,$004e,$0000
  1631.     Dc.w    $0048
  1632. CGood2C    Dc.w    $000f,$004a,$0000
  1633.     Dc.w    $0054
  1634. CGood2D    Dc.w    $000f,$0056,$0000
  1635.     Dc.w    $0062,$0026,$0064,$0026
  1636.     Dc.w    $0060,$0026,$0066,$0026
  1637.     Dc.w    $0058,(16*5)*64+1
  1638.     
  1639. CopShade2    Dc.w    $4801,$fffe
  1640.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1641.     Dc.w    $4901,$fffe
  1642.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1643.     Dc.w    $4a01,$fffe
  1644.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1645.  
  1646.     Dc.w    $4e01,$7ffe
  1647.     Dc.w    $0040
  1648. CGood3Con    Dc.w    $0fca,$0042,$0000
  1649.     Dc.w    $0050
  1650. CGood3A    Dc.w    $000f,$0052,$0000
  1651.     Dc.w    $004c
  1652. CGood3B    Dc.w    $000f,$004e,$0000
  1653.     Dc.w    $0048
  1654. CGood3C    Dc.w    $000f,$004a,$0000
  1655.     Dc.w    $0054
  1656. CGood3D    Dc.w    $000f,$0056,$0000
  1657.     Dc.w    $0062,$0026,$0064,$0026
  1658.     Dc.w    $0060,$0026,$0066,$0026
  1659.     Dc.w    $0058,(16*5)*64+1
  1660.  
  1661.     Dc.w    $5601,$7ffe
  1662.     Dc.w    $0040
  1663. CGood4Con    Dc.w    $0fca,$0042,$0000
  1664.     Dc.w    $0050
  1665. CGood4A    Dc.w    $000f,$0052,$0000
  1666.     Dc.w    $004c
  1667. CGood4B    Dc.w    $000f,$004e,$0000
  1668.     Dc.w    $0048
  1669. CGood4C    Dc.w    $000f,$004a,$0000
  1670.     Dc.w    $0054
  1671. CGood4D    Dc.w    $000f,$0056,$0000
  1672.     Dc.w    $0062,$0026,$0064,$0026
  1673.     Dc.w    $0060,$0026,$0066,$0026
  1674.     Dc.w    $0058,(16*5)*64+1
  1675.  
  1676. CopShade3    Dc.w    $5801,$fffe
  1677.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1678.     Dc.w    $5901,$fffe
  1679.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1680.     Dc.w    $5a01,$fffe
  1681.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1682.  
  1683.     Dc.w    $5e01,$7ffe
  1684.     Dc.w    $0040
  1685. CGood5Con    Dc.w    $0fca,$0042,$0000
  1686.     Dc.w    $0050
  1687. CGood5A    Dc.w    $000f,$0052,$0000
  1688.     Dc.w    $004c
  1689. CGood5B    Dc.w    $000f,$004e,$0000
  1690.     Dc.w    $0048
  1691. CGood5C    Dc.w    $000f,$004a,$0000
  1692.     Dc.w    $0054
  1693. CGood5D    Dc.w    $000f,$0056,$0000
  1694.     Dc.w    $0062,$0026,$0064,$0026
  1695.     Dc.w    $0060,$0026,$0066,$0026
  1696.     Dc.w    $0058,(16*5)*64+1
  1697.  
  1698.     Dc.w    $6601,$7ffe
  1699.     Dc.w    $0040
  1700. CGood6Con    Dc.w    $0fca,$0042,$0000
  1701.     Dc.w    $0050
  1702. CGood6A    Dc.w    $000f,$0052,$0000
  1703.     Dc.w    $004c
  1704. CGood6B    Dc.w    $000f,$004e,$0000
  1705.     Dc.w    $0048
  1706. CGood6C    Dc.w    $000f,$004a,$0000
  1707.     Dc.w    $0054
  1708. CGood6D    Dc.w    $000f,$0056,$0000
  1709.     Dc.w    $0062,$0026,$0064,$0026
  1710.     Dc.w    $0060,$0026,$0066,$0026
  1711.     Dc.w    $0058,(16*5)*64+1
  1712.  
  1713. CopShade4    Dc.w    $6801,$fffe
  1714.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1715.     Dc.w    $6901,$fffe
  1716.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1717.     Dc.w    $6a01,$fffe
  1718.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1719.  
  1720.     Dc.w    $6e01,$7ffe
  1721.     Dc.w    $0040
  1722. CGood7Con    Dc.w    $0fca,$0042,$0000
  1723.     Dc.w    $0050
  1724. CGood7A    Dc.w    $000f,$0052,$0000
  1725.     Dc.w    $004c
  1726. CGood7B    Dc.w    $000f,$004e,$0000
  1727.     Dc.w    $0048
  1728. CGood7C    Dc.w    $000f,$004a,$0000
  1729.     Dc.w    $0054
  1730. CGood7D    Dc.w    $000f,$0056,$0000
  1731.     Dc.w    $0062,$0026,$0064,$0026
  1732.     Dc.w    $0060,$0026,$0066,$0026
  1733.     Dc.w    $0058,(16*5)*64+1
  1734.  
  1735.     Dc.w    $7601,$7ffe
  1736.     Dc.w    $0040
  1737. CGood8Con    Dc.w    $0fca,$0042,$0000
  1738.     Dc.w    $0050
  1739. CGood8A    Dc.w    $000f,$0052,$0000
  1740.     Dc.w    $004c
  1741. CGood8B    Dc.w    $000f,$004e,$0000
  1742.     Dc.w    $0048
  1743. CGood8C    Dc.w    $000f,$004a,$0000
  1744.     Dc.w    $0054
  1745. CGood8D    Dc.w    $000f,$0056,$0000
  1746.     Dc.w    $0062,$0026,$0064,$0026
  1747.     Dc.w    $0060,$0026,$0066,$0026
  1748.     Dc.w    $0058,(16*5)*64+1
  1749.  
  1750. CopShade5    Dc.w    $7801,$fffe
  1751.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1752.     Dc.w    $7901,$fffe
  1753.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1754.     Dc.w    $7a01,$fffe
  1755.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1756.  
  1757.     Dc.w    $7e01,$7ffe
  1758.     Dc.w    $0040
  1759. CGood9Con    Dc.w    $0fca,$0042,$0000
  1760.     Dc.w    $0050
  1761. CGood9A    Dc.w    $000f,$0052,$0000
  1762.     Dc.w    $004c
  1763. CGood9B    Dc.w    $000f,$004e,$0000
  1764.     Dc.w    $0048
  1765. CGood9C    Dc.w    $000f,$004a,$0000
  1766.     Dc.w    $0054
  1767. CGood9D    Dc.w    $000f,$0056,$0000
  1768.     Dc.w    $0062,$0026,$0064,$0026
  1769.     Dc.w    $0060,$0026,$0066,$0026
  1770.     Dc.w    $0058,(16*5)*64+1
  1771.  
  1772.     Dc.w    $8601,$7ffe
  1773.     Dc.w    $0040
  1774. CGood10Con    Dc.w    $0fca,$0042,$0000
  1775.     Dc.w    $0050
  1776. CGood10A    Dc.w    $000f,$0052,$0000
  1777.     Dc.w    $004c
  1778. CGood10B    Dc.w    $000f,$004e,$0000
  1779.     Dc.w    $0048
  1780. CGood10C    Dc.w    $000f,$004a,$0000
  1781.     Dc.w    $0054
  1782. CGood10D    Dc.w    $000f,$0056,$0000
  1783.     Dc.w    $0062,$0026,$0064,$0026
  1784.     Dc.w    $0060,$0026,$0066,$0026
  1785.     Dc.w    $0058,(16*5)*64+1
  1786.  
  1787. CopShade6    Dc.w    $8801,$fffe
  1788.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1789.     Dc.w    $8901,$fffe
  1790.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1791.     Dc.w    $8a01,$fffe
  1792.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1793.  
  1794. CopShade7    Dc.w    $9801,$fffe
  1795.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1796.     Dc.w    $9901,$fffe
  1797.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1798.     Dc.w    $9a01,$fffe
  1799.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1800.  
  1801. CopShade8    Dc.w    $a801,$fffe
  1802.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1803.     Dc.w    $a901,$fffe
  1804.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1805.     Dc.w    $aa01,$fffe
  1806.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1807.  
  1808. CopShade9    Dc.w    $b801,$fffe
  1809.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1810.     Dc.w    $b901,$fffe
  1811.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1812.     Dc.w    $ba01,$fffe
  1813.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1814.  
  1815. CopShade10    Dc.w    $c801,$fffe
  1816.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1817.     Dc.w    $c901,$fffe
  1818.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1819.     Dc.w    $ca01,$fffe
  1820.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1821.  
  1822. CopShade11    Dc.w    $d801,$fffe
  1823.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1824.     Dc.w    $d901,$fffe
  1825.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1826.     Dc.w    $da01,$fffe
  1827.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1828.  
  1829. CopShade12    Dc.w    $e801,$fffe
  1830.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1831.     Dc.w    $e901,$fffe
  1832.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1833.     Dc.w    $ea01,$fffe
  1834.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1835.  
  1836. CopShade13    Dc.w    $f801,$fffe
  1837.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1838.     Dc.w    $f901,$fffe
  1839.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1840.     Dc.w    $fa01,$fffe
  1841.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1842.  
  1843.     Dc.w    $ffe1,$fffe
  1844.     
  1845. CopShade14    Dc.w    $0801,$fffe
  1846.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1847.     Dc.w    $0901,$fffe
  1848.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1849.     Dc.w    $0a01,$fffe
  1850.     Dc.w    $194,$666,$196,$555,$198,$444,$19a,$333,$19c,$222,$19e,$111,$1a0,$111
  1851.  
  1852.     Dc.w    $1901,$fffe
  1853.     
  1854.     Dc.w    $100,$200
  1855.  
  1856. Ints    Dc.w    $009C,$0000
  1857.     Dc.w    $ffff,$fffe
  1858.     
  1859. DeadCopper    Dc.w    $100,$200,$1f0,0,$ffff,$fffe
  1860.  
  1861. CopperShade    Dc.l    0
  1862.  
  1863. MapData    Incbin    Df0:OffLevel1.Data
  1864.     
  1865. BloxData    Incbin    Df0:Offblox.Raw
  1866.  
  1867. BlokeData    Incbin    Df0:Temp-Bloke.Raw
  1868. BlokeMask    Incbin    Df0:Temp-Bloke.Mask
  1869.  
  1870. NastyData    Incbin    Df0:OffBad1.Raw
  1871. NastyMask    Incbin    Df0:OffBad1.Mask
  1872.  
  1873. GoodyData    Incbin    Df0:OffGoodies.Raw
  1874. GoodyMask    Incbin    Df0:OffGoodies.Mask
  1875.  
  1876. ScoresData    Incbin    Df0:OffScores.Raw
  1877. ScoresMask    Incbin    Df0:OffScores.Mask
  1878.  
  1879. FontData    Incbin    Df0:Retro-Font.Raw
  1880.  
  1881. Piccy    Ds.b    (40*5*233)
  1882. ShitBuffer    Ds.b    (40*5*33)
  1883. PiccyBack    Ds.b    (40*5*233)
  1884.  
  1885. ***** Custom chipbase offset table *****
  1886.  
  1887. ;General registers
  1888.  
  1889. Dmaconr    = $002
  1890. Vposr    = $004
  1891. Vhposr    = $006
  1892. Joy0dat    = $00A
  1893. Joy1dat    = $00C
  1894. Intenar    = $01C
  1895. Intereqr    = $01E
  1896. CopCon    = $02E
  1897.  
  1898. ;Blitter registers
  1899.  
  1900. Bltcon0    = $040
  1901. Bltcon1    = $042
  1902. Bltafwm    = $044
  1903. Bltalwm    = $046
  1904. Bltcpth    = $048
  1905. Bltcptl    = $04A
  1906. Bltbpth    = $04C
  1907. Bltbptl    = $04E
  1908. Bltapth    = $050
  1909. Bltaptl    = $052
  1910. Bltdpth    = $054
  1911. Bltdptl    = $056
  1912. Bltsize    = $058
  1913. Bltcmod    = $060
  1914. Bltbmod    = $062
  1915. Bltamod    = $064
  1916. Bltdmod    = $066
  1917. Bltcdat    = $070
  1918. Bltbdat    = $072
  1919. Bltadat    = $074
  1920.  
  1921. ;Copper registers
  1922.  
  1923. Cop1lc    = $080
  1924. Cop1lch    = $080
  1925. Cop1lcl    = $082
  1926. Cop2lc    = $084
  1927. Cop2lch    = $084
  1928. Cop2lcl    = $086
  1929. Copjmp1    = $088
  1930. Copjmp2    = $08A
  1931. Diwstrt    = $08E
  1932. Diwstop    = $090
  1933. Ddfstrt    = $092
  1934. Ddfstop    = $094
  1935. Dmacon    = $096
  1936. Intena    = $09A
  1937. Intreq    = $09C
  1938.  
  1939. ;Audio registers
  1940.  
  1941. Adkcon    = $09E
  1942. Aud0lch    = $0A0
  1943. Aud0lcl    = $0A2
  1944. Aud0len    = $0A4
  1945. Aud0per    = $0A6
  1946. Aud0vol    = $0A8
  1947. Aud0dat    = $0AA
  1948. Aud1lch    = $0B0
  1949. Aud1lcl    = $0B2
  1950. Aud1len    = $0B4
  1951. Aud1per    = $0B6
  1952. Aud1vol    = $0B8
  1953. Aud1dat    = $0BA
  1954. Aud2lch    = $0C0
  1955. Aud2lcl    = $0C2
  1956. Aud2len    = $0C4
  1957. Aud2per    = $0C6
  1958. Aud2vol    = $0C8
  1959. Aud2dat    = $0CA
  1960. Aud3lch    = $0D0
  1961. Aud3lcl    = $0D2
  1962. Aud3len    = $0D4
  1963. Aud3per    = $0D6
  1964. Aud3vol    = $0D8
  1965. Aud3dat    = $0DA
  1966.  
  1967. Color00    = $180
  1968. Color01    = $182
  1969. Color02    = $184
  1970. Color03    = $186
  1971. Color04    = $188
  1972. Color05    = $18A
  1973. Color06    = $18C
  1974. Color07    = $18E
  1975. Color08    = $190
  1976. Color09    = $192
  1977. Color10    = $194
  1978. Color11    = $196
  1979. Color12    = $198
  1980. Color13    = $19A
  1981. Color14    = $19C
  1982. Color15    = $19E
  1983. Color16    = $1A0
  1984. Color17    = $1A2
  1985. Color18    = $1A4
  1986. Color19    = $1A6
  1987. Color20    = $1A8
  1988. Color21    = $1AA
  1989. Color22    = $1AC
  1990. Color23    = $1AE
  1991. Color24    = $1B0
  1992. Color25    = $1B2
  1993. Color26    = $1B4
  1994. Color27    = $1B6
  1995. Color28    = $1B8
  1996. Color29    = $1BA
  1997. Color30    = $1BC
  1998. Color31    = $1BE
  1999.  
  2000. Bpl1pth    = $0E0
  2001. Bpl1ptl    = $0E2
  2002. Bpl2pth    = $0E4
  2003. Bpl2ptl    = $0E6
  2004. Bpl3pth    = $0E8
  2005. Bpl3ptl    = $0EA
  2006. Bpl4pth    = $0EC
  2007. Bpl4ptl    = $0EE
  2008. Bpl5pth    = $0F0
  2009. Bpl5ptl    = $0F2
  2010. Bpl6pth    = $0F4
  2011. Bpl6ptl    = $0F6
  2012. Bplcon0    = $100
  2013. Bplcon1    = $102
  2014. Bplcon2    = $104
  2015. Bpl1mod    = $108
  2016. Bpl2mod    = $10A
  2017.  
  2018. HardWare    = $dff000
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.